home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
ms_dos
/
nifp
/
nifp.h
< prev
next >
Wrap
Text File
|
1993-07-08
|
15KB
|
523 lines
/*
* このモジュールは,NIFPのインクルードファイルです。
* このモジュールは,マシン依存していません。
*/
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <jctype.h>
#include <jstring.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <conio.h>
#include <time.h>
#include <alloc.h>
#include <dir.h>
#define scldown() scroll(1,1,3,80,line-2)
#define sclup() scroll(0,1,3,80,line-2)
#define MAXPOINT 9999 /* タイトル最大数 */
#define MAXLINE 999 /* 内容表示最大行数 */
#define FMAXFILE 128 /* 最大ファイル数 */
#define MAXDATF 1000 /* 最大記憶ファイル数 */
#define MAXCUTNO 50 /* 最大カット文字列記憶数 */
#define MAXMSGNO 10 /* 最大フォーラム3回メッセージ文字列記憶数 */
#define MAXTBL (16384/sizeof(PCELL2))
/* タイトルテーブル構造体 */
typedef struct p_cell2 { /* 内容テーブル */
int fno; /* ファイルNo. */
long top,tail; /* 先頭ファイルポインタ,最終ファイルポインタ */
long lineno;
int cmt; /* コメントツリーのネスト数 */
char nifid[8]; /* NIFTY-ID */
int id,cno,cid; /* 発言番号,コメント数,コメント番号 */
char title[81]; /* タイトル文字列 */
} PCELL2;
typedef struct p_cell { /* 管理テーブル */
struct p_cell far *next; /* 次ポインタ */
struct p_cell far *back; /* 前ポインタ */
char mode,flag; /* モード,フラグ */
int count; /* タイトルNo. */
struct p_cell far *grp; /* グループタイトルテーブルポインタ */
int lno; /* ページNo. */
struct p_cell2 far *p; /* 内容テーブルポインタ */
} PCELL;
typedef struct p_cell3 {
PCELL tbl[MAXTBL];
struct p_cell3 far *next;
} PCELL3;
/* タイトル区分コード(タイトルテーブルのモード) */
#define NHP 2 /* ホームパーティ受信 */
#define NMAIL 3 /* 電子メール受信 */
#define NFORUM 4 /* フォーラム会議室受信 */
#define NNEWS 5 /* ニュース */
#define NBBS 6 /* 掲示板 */
#define NMEMBER 8 /* 会員情報(*) */
#define NCB 10 /* CB(*) */
#define NNOTE 11 /* お知らせ */
#define NBILL 12 /* 課金情報(*) */
#define NBYE 13 /* ログアウト(*) */
#define NSINBUN 14 /* 新聞情報 */
#define NLIB 15 /* フォーラムライブラリデータ(*) */
#define NHPWRITE 16 /* HPの送信 */
#define NFWRITE 17 /* フォーラムの送信 */
#define NGUEST 18 /* HPのゲスト情報 */
#define NFRT 19 /* フォーラム会議室タイトル一覧(*) */
#define NFRS 20 /* フォーラム会議室検索一覧(*) */
#define NLIBNO 21 /* フォーラムデータライブラリ一覧(*) */
#define NLIBDATA 22 /* フォーラムデータライブラリデータ */
#define NFRTIME 23 /* フォーラムリアルタイム会議(*) */
#define NFNEWS 24 /* フォーラムニュース */
#define NFBBS 25 /* フォーラム掲示板 */
#define NMES 26 /* フォーラム会議室(*) */
#define NMWRITE 27 /* 電子メールの送信 */
#define NWRITE 28 /* その他の送信 */
#define NPROF 29 /* 会員情報 */
#define NINFO 30 /* 情報サービス */
#define NTENKI 31 /* 天気情報 */
#define NMRCV 32 /* 電子メール受信リスト(*) */
#define NSDL 33 /* 電子メール送信簿(*) */
#define NRCL 34 /* 電子メール受信簿(*) */
#define NOPT 35 /* オプション設定(*) */
#define NM2WRITE 36 /* 電子メールの送信(*)(AIR CRAFT用) */
#define NPATIO 37 /* パティオ会議(*) */
#define NPGUEST 38 /* パティオのゲスト情報 */
#define NFORUM2 39 /* フォーラム3回メッセージ情報 */
#define NHPHEAD 128 /* HPタイトル */
#define NMAILHEAD 129 /* 電子メールタイトル */
#define NFORUMHEAD 130 /* フォーラムタイトル */
#define NNEWSHEAD 131 /* ニュースタイトル */
#define NBBSHEAD 132 /* 掲示板タイトル */
#define NCBHEAD 133 /* CBタイトル */
#define NNOTEHEAD 134 /* お知らせタイトル */
#define NBILLHEAD 135 /* 課金情報タイトル */
#define NBYEHEAD 136 /* ログアウトタイトル */
#define NSINBUNHEAD 137 /* 新聞情報タイトル */
#define NLIBHEAD 138 /* フォーラムデータライブラリタイトル */
#define NMESHEAD 139 /* フォーラム会議室タイトル */
#define NFRTHEAD 140 /* フォーラム会議室タイトル一覧 */
#define NFRSHEAD 141 /* フォーラム会議室検索一覧 */
#define NFRTIMEHEAD 142 /* フォーラムリアルタイム会議 */
#define NFNEWSHEAD 143 /* フォーラムニュースタイトル */
#define NFBBSHEAD 144 /* フォーラム掲示板タイトル */
#define NLIBNOHEAD 145 /* フォーラムデータライブラリ一覧 */
#define NMESNOHEAD 146 /* フォーラム会議室一覧 */
#define NMEMBERHEAD 147 /* 会員情報タイトル */
#define NINFOHEAD 148 /* 情報サービスタイトル */
#define NMRCVHEAD 149 /* 電子メール受信リストタイトル */
#define NSDLHEAD 150 /* 電子メール送信簿タイトル */
#define NRCLHEAD 151 /* 電子メール受信簿タイトル */
#define NTITLE 152 /* HPのタイトル一覧 */
#define NINIT 153 /* オープニング */
#define NTOP 154 /* トップメニュー */
#define NMYFORUM 155 /* MYFORUM一覧 */
#define NOPTHEAD 156 /* オプション設定 */
#define NPATIOHEAD 157 /* パティオ会議タイトル */
#define NETC 253 /* その他 */
#define NSEPA 254 /* セパレータ */
#define NEND 255 /* END */
/* 表示モードフラグ */
#define NFNORMAL 1 /* ノーマル */
#define NFCOMENT 2 /* コメント */
#define NFCOMENTID 3 /* コメントID */
#define NFSEARCH 4 /* 検索 */
#define NFID 5 /* ID */
#define NFAUTO1 6 /* 自動表示中 */
#define NFAUTO2 7 /* 自動表示一時停止 */
/* タイトルテーブルフラグ */
#define FSENTAKU 0x80 /* 選択 */
#define FSAKUJYO 0x40 /* 削除 */
#define FTAG 0x20 /* タグ */
#define FYOMI 0x10 /* 既読 */
#define FJUMP 0x08 /* タグ・検索時のジャンプ用 */
#define FCYCLE 0x04 /* サイクリック会議室フラグ */
#define FDISP 0x01 /* 有効フラグ */
/* タイトル区分用特殊分類 */
#define SWRITE 1 /* 発言 */
#define SGUEST 2 /* HPのGUESTコマンド */
#define STITLE 3 /* HPのTITLEコマンド */
#define SPROF 4 /* PROFコマンド */
/* 画面表示色カスタマイズ番号 */
#define IROMAX 39
#define IFILE 0
#define INIFMODE 1
#define ITITLE 2
#define IMODE 3
#define IHEAD 4
#define IRHEAD 5
#define IETC 6
#define IRETC 7
#define ISEPA 8
#define IRSEPA 9
#define IEND 10
#define IREND 11
#define INAIYOU 12
#define ISETUMEI 13
#define ILINE 14
#define IUP 15
#define IDOWN 16
#define IKEN 17
#define ICMT 18
#define IID 19
#define ISENTAKU 20
#define IRSENTAKU 21
#define ISAKUJYO 22
#define IRSAKUJYO 23
#define IGATTAI 24
#define IRGATTAI 25
#define ITAG 26
#define IRTAG 27
#define IYOMI 28
#define IRYOMI 29
#define ITAB 30
#define ICR 31
#define IJIKOKU 32
#define IFWAKU 33
#define IFCUR 34
#define IPFKEY 35
#define IKENSAKU 36
#define IKAKUNIN 37
#define IERROR 38
/* ログ整理テーブル */
#define LHPHEAD 0 /* HPタイトル */
#define LHP 1 /* ホームパーティ受信 */
#define LHPWRITE 2 /* HPの送信 */
#define LGUEST 3 /* HPのゲスト情報 */
#define LTITLE 4 /* HPのタイトル一覧 */
#define LMAILHEAD 5 /* 電子メールタイトル */
#define LMAIL 6 /* 電子メール受信 */
#define LMWRITE 7 /* 電子メールの送信 */
#define LMRCVHEAD 8 /* 電子メール受信リストタイトル */
#define LRCLHEAD 9 /* 電子メール受信簿タイトル */
#define LSDLHEAD 10 /* 電子メール送信簿タイトル */
#define LNEWSHEAD 11 /* ニュースタイトル */
#define LNEWS 12 /* ニュース */
#define LBBSHEAD 13 /* 掲示板タイトル */
#define LBBS 14 /* 掲示板 */
#define LCBHEAD 15 /* CBタイトル */
#define LNOTEHEAD 16 /* お知らせタイトル */
#define LNOTE 17 /* お知らせ */
#define LBILLHEAD 18 /* 課金情報タイトル */
#define LSINBUNHEAD 19 /* 新聞情報タイトル */
#define LSINBUN 20 /* 新聞情報 */
#define LMYFORUM 21 /* MYFORUM一覧 */
#define LFORUMHEAD 22 /* フォーラムタイトル */
#define LFNEWSHEAD 23 /* フォーラムニュースタイトル */
#define LFNEWS 24 /* フォーラムニュース */
#define LFBBSHEAD 25 /* フォーラム掲示板タイトル */
#define LFBBS 26 /* フォーラム掲示板 */
#define LMESNOHEAD 27 /* フォーラム会議室一覧 */
#define LMESHEAD 28 /* フォーラム会議室タイトル */
#define LFORUM 29 /* フォーラム会議室受信 */
#define LFWRITE 30 /* フォーラムの送信 */
#define LFRTHEAD 31 /* フォーラム会議室タイトル一覧 */
#define LFRSHEAD 32 /* フォーラム会議室検索一覧 */
#define LFRTIMEHEAD 33 /* フォーラムリアルタイム会議 */
#define LLIBNOHEAD 34 /* フォーラムデータライブラリ一覧 */
#define LLIBHEAD 35 /* フォーラムデータライブラリタイトル */
#define LLIBDATA 36 /* フォーラムデータライブラリデータ */
#define LOPTHEAD 37 /* オプション設定 */
#define LWRITE 38 /* その他の送信 */
#define LINFOHEAD 39 /* 情報サービスタイトル */
#define LINFO 40 /* 情報サービス */
#define LMEMBERHEAD 41 /* 会員情報タイトル */
#define LPROF 42 /* 会員情報 */
#define LTENKI 43 /* 天気情報 */
#define LINIT 44 /* オープニング */
#define LTOP 45 /* トップメニュー */
#define LBYEHEAD 46 /* ログアウトタイトル */
#define LPATIOHEAD 47 /* パティオ会議室タイトル */
#define LPGUEST 48 /* パティオ会議室ゲスト情報 */
#define LETC 49 /* その他 */
#define LOGDIRMAX LETC*2+2
/*
* 機能キーコード定義
*/
#define PF1 0x81
#define PF2 0x82
#define PF3 0x83
#define PF4 0x84
#define PF5 0x85
#define PF6 0x86
#define PF7 0x87
#define PF8 0x88
#define PF9 0x89
#define PF10 0x8a
#define S_PF1 0xa1
#define S_PF2 0xa2
#define S_PF3 0xa3
#define S_PF4 0xa4
#define S_PF5 0xa5
#define S_PF6 0xa6
#define S_PF7 0xa7
#define S_PF8 0xa8
#define S_PF9 0xa9
#define S_PF10 0xaa
#define C_PF1 0xc1
#define C_PF2 0xc2
#define C_PF3 0xc3
#define C_PF4 0xc4
#define C_PF5 0xc5
#define C_PF6 0xc6
#define C_PF7 0xc7
#define C_PF8 0xc8
#define C_PF9 0xc9
#define C_PF10 0xca
#define SC_PF1 0xf5
#define SC_PF2 0xf6
#define SC_PF3 0xf7
#define SC_PF4 0xf8
#define SC_PF5 0xf9
#define SC_PF6 0xfa
#define SC_PF7 0xfb
#define SC_PF8 0xfc
#define SC_PF9 0xfd
#define SC_PF10 0xfe
#define UEYA 0x90
#define SITAYA 0x91
#define HIDARIYA 0x92
#define MIGIYA 0x93
#define KAIGYO 0x0d
#define SENTAKU 0xff
#define ESC 0x1b
/* ログファイル修正フラグ(foutmode) */
#define F_UPDATE 1
#define F_MEMERR 2
extern PCELL far *p_top;
extern PCELL far *p_head;
extern PCELL far *p_tail;
extern char filename[],gfilename[];
extern union REGS regs;
extern struct SREGS sregs;
extern char far *file[];
extern FILE *fd;
extern int cfno;
extern char far *buf1[];
extern char fbuf1[];
extern char far *po;
extern char *dataend;
extern char hpid[],hpmsg[],forummsg[],forumname[];
extern char niftyid[];
extern char heya[],saveheya[],savebuf[];
extern int fmeslibno,pend,jumpon,preno;
extern int gp;
extern char far *logdir[];
extern long jpp,jpplno,savepp,savepplno,fsavepp;
extern char savehpread;
extern long p,p_linecount,savep,sentakuno,sakujyono,tagno;
extern char nmode,savecon,nifmode,savenmode,bunmode,foutmode;
extern int savepno;
extern int fno,maxfno;
extern int line,saveline;
extern int typespeed;
extern int waittimes,titlecount,vrammode,fsortmode,fsort2mode;
extern int autodisptime;
extern char autodispsw;
extern char editer[];
extern char kiridir[];
extern char hatudir[];
extern char titledir[];
extern char keytbl[];
extern char irotbl[];
extern int endmode;
extern int tabno;
extern int topendmode;
extern int yesnomode;
extern int sakujyomode;
extern int editmode;
extern int tabcrmode;
extern int jikokumode;
extern int cutmode;
extern int nextmode;
extern int startmode;
extern char sepamode;
extern int keyshiftmode;
extern int midokumode;
extern int timechkmode;
extern PCELL far *rsv_p;
extern char savsafix[];
extern char nifsafix[];
extern char ESCin[],ESCout[];
extern char far *cutstrtbl[];
extern char far *msgstrtbl[];
extern int savekeymode,passmode;
extern int keta,gyo,tmode;
extern char atr;
extern long vramoffset;
extern int kensakukensu;
extern PCELL far *ttop;
extern PCELL far *ttail;
extern PCELL far *ggtop;
extern PCELL far *ggtail;
extern PCELL far *gpo;
extern char nifid[];
extern char kensakumoji[];
extern char *space;
extern char *spalate;
extern int rtnk;
extern char logforum[],loghpid[],logmes[],loglib[],logniftyid[];
extern long sp;
extern int passflag;
extern char erron;
extern time_t lsavetime[];
extern char tagmode,titlemode;
extern char datfile[];
extern char far *datf[];
extern long midokuno;
extern char cmdtbl[15][41];
extern char datfile_s[];
extern int emsno;
extern int ems_count;
extern int ems_lno;
extern int ems_handle;
extern long ems_seg;
extern PCELL far *p_freetop;
extern PCELL3 far *p_tbltop;
extern long forum3msgp;
extern int datf_src(char *,int);
extern void loc(int,int);
extern void locate(int,int);
extern void xlocate2(void);
extern void xlocate(void);
extern void scroll(int,int,int,int,int);
extern int getline(void);
extern void setcon(int);
extern void restorecon(int);
extern void cslon(void);
extern void csloff(void);
extern void chglowline(void);
extern void chghighline(void);
extern void clr(void);
extern void allclr(void);
extern void setline(int);
extern void atrset(char);
extern void iro(char);
extern void deforutoiro(void);
extern void print(char *);
extern void keyget(void);
extern void pfdisp(int);
extern void pfset(void);
extern void stsdisp(void);
extern char keyget2(int);
extern void cgetsx(char *,int);
extern int rtncut(char *);
extern void rtncut2(char *);
extern int yesnocheck(char *);
extern void errdisp1(char *);
extern void errdisp2(char *);
extern void errdisp3(char *);
extern void nstatus(int,PCELL far *,int,int,int,int);
extern void topdisp(void);
extern int asctodec(char *);
extern int bunget(PCELL far *,int);
extern void hpread(long,int);
extern char *substrstr(char *,char *);
extern char cnvpfkey(int);
extern void cgetfsx(char *,char *);
extern int filechoice(int);
extern int checkfile(char *);
extern void xxfseek(PCELL far *,long);
extern void xhpread(int);
extern void xnstatus(void);
extern void logclose(int);
extern int logedit1(PCELL far *,int,int);
extern FILE *xxfopen(char *,char *);
extern FILE *fopen_sub(char *,int);
extern FILE *xfopen(char *);
extern int xfclose(void);
extern int xfseek(long);
extern long xftell(void);
extern int xfgetc(void);
extern int xfeof(void);
extern char *xfgets(char *,int);
extern void xstrncpy(char *,char *);
extern void xxstrncpy(char *,char *,int);
extern void xxstrncpy80(char *,char *);
extern void xxstrncpy50(char *,char *);
extern int xstrncmp(char *,char *);
extern int xstrcmp(char *,char *);
extern void set_cmdcopy(char *,int,PCELL far *,char *,int);
extern int comand_disp(PCELL far *,int);
extern void help(int);
extern void strncat80(char *,char *);
extern void str79set(char *);
struct dir2_tree {
struct dir2_tree *next;
struct dir2_tree *back;
struct stat sbuf;
char name[13];
char far *file;
};
extern int set2_tree(char *);
extern void tree2free(void);
extern struct dir2_tree *tree2_top;
extern struct dir2_tree *tree2_pos;
#define _fstrcpy strcpy
#define _fstrncpy strncpy
#define _fstrcmp strcmp
#define _fmemset memset
#define _fmemcpy memcpy
#define _fmemcmp memcmp
/*
extern char far *_fstrcpy(char far *,char far *);
extern char far *_fstrncpy(char far *,char far *,int);
extern int _fstrcmp(char far *,char far *);
extern char far *_fmemset(char far *,char,int);
extern char far *_fmemcpy(char far *,char far *,int);
extern int _fmemcmp(char far *,char far *,int);
*/
extern void grh_disp(char *,int);
extern void grh_sub(long,long);
extern int nifoutopen(void);
extern int nifoutropen(void);
extern int nifoutput(PCELL far *);
extern int nifoutget(void);
extern void nifoutclose(int);
extern void get_fdir(char *,char *);
extern int keycheck(void);
extern char *memgeterror;
extern void waku_disp(int,int,int,int,char *,char *);
extern char YEAR[],year[],mon[],mon2[],mday[],hour1[],hour2[],min[],sec[],ampm[];
extern void dateget(void);
extern void clr1(char);
extern void clr2(void);
extern PCELL far *cmtsepa(PCELL far *);
extern void kprintf(char *);
extern void eprintf(char *);
extern PCELL far *tbl_alloc(int);
extern void tbl_free(PCELL far *);
extern void tbl_set(PCELL far *);
extern int ems_get(void);
extern int ems_add(int);
extern int ems_set(int);
extern int ems_check(void);
extern long ems_getseg(void);
extern int ems_free(void);